package com.kangye.enterprise.frontdesk.util;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.UUID;

/**
 * @program: ssm_smbms
 * @description: 上传文件工具类
 * @author:
 * @create: 2021-04-23 11:47
 **/
public class UploadFileUtil {

    /**
     * 获取文件上传的地址
     * @param properties 配置文件
     * @return
     */
    public static String filePath(String properties) throws IOException {
        //获取配置文件的路径
        InputStream in = UploadFileUtil.class.getClassLoader().getResourceAsStream(properties);
        //获取配置文件的对象
        Properties pro = new Properties();
        //加载配置文件
        pro.load(in);
        //读取配置文件里的信息 获取图片上传的地址
        return (String) pro.get("filePath");
    }

    /**
     * 将文件重新命,并写入到指定的文件中
     * @param properties 需要的路径配置资源
     * @param files 接收到的文件
     * @return
     * @throws IOException
     */
    public static String uploadFilePro(String properties, MultipartFile... files) throws IOException {
        String filePath = filePath(properties);
        return uploadFilePath(filePath,files);
    }

    /**
     * 将文件重新命,并写入到指定的文件中
     * @param path 存放图片的路径
     * @param files 接收到的文件
     * @return
     * @throws IOException
     */
    public static String uploadFilePath(String path, MultipartFile... files) throws IOException {
        //定义一个字符串,来拼接多个图片存放在数据库的路径
        StringBuilder fileNameBuilder = new StringBuilder();
        //遍历多个图片
        for (MultipartFile file : files){
            //判断是否有图片
            if (file.getSize()>0){
                //获得文件的名字
                String fileName = file.getOriginalFilename();

                //使用UUID将文件重命名
                String newfileName = UUID.randomUUID()+fileName.substring(fileName.lastIndexOf("."));

                //file类
                File targetFile = new File(path,newfileName);
                //判断文件夹是否存在,不存在则创建
                if (!targetFile.exists()){
                    //创建存储图片的目录
                    targetFile.getParentFile().mkdirs();
                }
                //将图片写入到指定的文件夹中
                file.transferTo(targetFile);

                //拼接一下路径和逗号
                fileNameBuilder.append(newfileName).append(",");
            }
        }
        //创建String
        String fileNamePath = null;
        //判断字符里是否有值
        if (fileNameBuilder.length()>0){
            //转为将所有图片的路径转为String格式
            fileNamePath = fileNameBuilder.toString();
            //截取去掉最后一个逗号
            fileNamePath = fileNamePath.substring(0,fileNamePath.length()-1);
        }
        //返回图片路径
        return fileNamePath;
    }
}
